import com.alibaba.fastjson.serializer.SerializerFeature
import com.alibaba.fastjson.{JSON, JSONArray, JSONObject}

import scala.beans.BeanProperty
import scala.collection.mutable._

import scala.collection.mutable.ListBuffer

object Test {

    case class MessageCount(
                                   @BeanProperty level1: Long,
                                   @BeanProperty level2: Long,
                                   @BeanProperty level3: Long,
                                   @BeanProperty level4: Long,
                                   @BeanProperty level5: Long,
                                   @BeanProperty level6: Long
                           )

    case class KeyWordCount(
                                   @BeanProperty reply_id: Long,
                                   @BeanProperty `type`: Int,
                                   @BeanProperty word: String,
                                   @BeanProperty count: Long
                      )

    def main(args: Array[String]): Unit = {
        //        val json = new JSONObject()
        //        json.put("level1", 45)
        //        json.put("level2", 46)
        //        json.put("level3", 47)
        //        json.put("level4", 48)
        //        json.put("level5", 49)
        //        json.put("level6", 457)

//        var messageCount = MessageCount(45, 45, 66, 77, 88, 78)
//
//        println(JSON.toJSONString(messageCount, SerializerFeature.WriteNonStringKeyAsString))


        val json = new JSONObject()
        val jsonarr = new JSONArray()

        jsonarr.add(KeyWordCount(1234, 2, "haha", 56))
        jsonarr.add(KeyWordCount(1134, 2, "xx", 57))
        jsonarr.add(KeyWordCount(3245, 2, "dgsh", 26))

//        val json1 = new JSONObject()
//        json1.put("reply_id", 1234)
//        json1.put("type", 2)
//        json1.put("word", "haha")
//        json1.put("count", 56)
//        jsonarr.add(json1)


//        val lst = ListBuffer[KeyWordCount]()
//        lst.append(KeyWordCount("1234", 2, "haha", 56))
//        lst.append(KeyWordCount("2234", 2, "xx", 57))
//        lst.append(KeyWordCount("3234", 2, "dgsh", 26))

        json.put("7", jsonarr)
        println(json.toJSONString)

        val obj = JSON.parseObject(json.toJSONString)
        println(obj.get("7").asInstanceOf[JSONArray].get(0))
    }


    //    def main(args: Array[String]): Unit = {
    ////        println(this.getClass.getName)
    ////        val arr = new Array[String](10)
    ////        val arr2 = Array("aaa", "bbb", "ccc")
    ////        for(x <- arr) {
    ////            println(x)
    ////        }
    ////
    ////        arr2(2) = "xxx"
    ////        for(x <- arr2.toList){
    ////            println(x)
    ////        }
    ////
    ////
    ////        val mar = ofDim[Int](2, 3)
    ////        for(i <- 0 until mar.length){
    ////            for(j <- 0 until mar(i).length){
    ////                print(mar(i)(j) + " ")
    ////            }
    ////            println()
    ////        }
    ////
    ////        println(range(1, 10, 2).mkString(","))
    //
    //        val scores = HashMap("chenchi" -> 99, "weiyinfu" -> 33)
    //        println(scores.getOrElse("chenchi2", 0))
    //
    //        scores.get("chenchis") match {
    //            case Some(sc) => println(sc)
    //            case _ => println("没有")
    //        }
    //
    //        val test2 = test _
    //        println(List(111,222,333).map(test2(_)))
    //
    //
    //        scores("chenchi") = 444
    //        scores("szt") = 100
    //        println(scores)
    //
    //
    //        println("123456".intersect("567890"))
    //
    //        println("hello".distinct)
    //
    //
    //        printUnit("hello")
    //
    //
    //        var ll = List(1,2,3)
    //        ll = 0 :: ll
    //        println(ll)
    //
    //
    //        val list = new ListBuffer[String]
    //        val list2 = ListBuffer[String]("陈驰", "石泽涛")
    //
    //        list.appendAll(list2)
    //        list.append("xx", "yy")
    //
    //        list += "大家"
    //        list ++= list2
    //
    //        println(list)
    //
    //
    //        val lines = List("hello tom hello jerry", "hello jerry", "hello kitty")
    //        println(lines.flatMap(_.split(" ")).map((_, 1)).groupBy(_._1).map(t => (t._1, t._2.size)).toList.sortBy(_._2).reverse)
    //
    //
    //
    //        val tt = ArrayBuffer[Int](1,2,3)
    //        val tt2 = tt.map((x :Int) => x + 1)
    //        println(tt2.mkString(","))
    //
    //
    //
    //
    //        println(Array(1,2,3,4,5).map(_ * 2).sorted .mkString(","))
    //
    //
    //
    //
    //        val str = "dt1234567"
    //        println(str.split("_")(1))
    //    }
    def printUnit(x: Unit) = {
        println(x)
    }


    def test(x: Int) = {
        x * 2
    }
}
